package com.fl.nj.mapper;

import com.fl.nj.entity.Menu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 菜单Mapper接口
 */
@Mapper
public interface MenuMapper {
    /**
     * 获取所有菜单
     * 
     * @return 菜单列表
     */
    List<Menu> findAll();

    /**
     * 根据ID获取菜单
     * 
     * @param id 菜单ID
     * @return 菜单对象
     */
    Menu findById(@Param("id") Long id);

    /**
     * 根据父菜单ID获取子菜单
     * 
     * @param parentId 父菜单ID
     * @return 子菜单列表
     */
    List<Menu> findByParentId(@Param("parentId") Long parentId);

    /**
     * 添加菜单
     * 
     * @param menu 菜单对象
     * @return 影响的行数
     */
    int insert(Menu menu);

    /**
     * 更新菜单
     * 
     * @param menu 菜单对象
     * @return 影响的行数
     */
    int update(Menu menu);

    /**
     * 删除菜单
     * 
     * @param id 菜单ID
     * @return 影响的行数
     */
    int delete(@Param("id") Long id);

    /**
     * 获取菜单树结构
     * 
     * @return 菜单树列表
     */
    List<Menu> findMenuTree();
}